/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mrp.persistencia.entity;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 *
 * @author root
 */
@Entity
@Table(name = "detalleordenproduccion")
@NamedQueries({
    @NamedQuery(name = "Detalleordenproduccion.findAll", query = "SELECT d FROM Detalleordenproduccion d"),
    @NamedQuery(name = "Detalleordenproduccion.findByCoddetalleorden", query = "SELECT d FROM Detalleordenproduccion d WHERE d.coddetalleorden = :coddetalleorden"),
    @NamedQuery(name = "Detalleordenproduccion.findByFechainicio", query = "SELECT d FROM Detalleordenproduccion d WHERE d.fechainicio = :fechainicio"),
    @NamedQuery(name = "Detalleordenproduccion.findByHorainicio", query = "SELECT d FROM Detalleordenproduccion d WHERE d.horainicio = :horainicio"),
    @NamedQuery(name = "Detalleordenproduccion.findByFechafin", query = "SELECT d FROM Detalleordenproduccion d WHERE d.fechafin = :fechafin"),
    @NamedQuery(name = "Detalleordenproduccion.findByHorafin", query = "SELECT d FROM Detalleordenproduccion d WHERE d.horafin = :horafin"),
    @NamedQuery(name = "Detalleordenproduccion.findByObservacion", query = "SELECT d FROM Detalleordenproduccion d WHERE d.observacion = :observacion"),
    @NamedQuery(name = "Detalleordenproduccion.findByControlcalidad", query = "SELECT d FROM Detalleordenproduccion d WHERE d.controlcalidad = :controlcalidad")})
public class Detalleordenproduccion implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2147483647)
    @Column(name = "coddetalleorden")
    private String coddetalleorden;
    @Column(name = "fechainicio")
    @Temporal(TemporalType.DATE)
    private Date fechainicio;
    @Column(name = "horainicio")
    @Temporal(TemporalType.TIME)
    private Date horainicio;
    @Column(name = "fechafin")
    @Temporal(TemporalType.DATE)
    private Date fechafin;
    @Column(name = "horafin")
    @Temporal(TemporalType.TIME)
    private Date horafin;
    @Size(max = 2147483647)
    @Column(name = "observacion")
    private String observacion;
    @Basic(optional = false)
    @NotNull
    @Column(name = "controlcalidad")
    private boolean controlcalidad;
    @JoinColumn(name = "proceso_fk", referencedColumnName = "codproceso")
    @ManyToOne(optional = false)
    private Proceso procesoFk;
    @JoinColumn(name = "ordenproduccion_fk", referencedColumnName = "numerotarjetafabricacion")
    @ManyToOne(optional = false)
    private Ordenproduccion ordenproduccionFk;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "detalleordenproduccionPk")
    private List<Controlcalidad> controlcalidadList;

    public Detalleordenproduccion() {
    }

    public Detalleordenproduccion(String coddetalleorden) {
        this.coddetalleorden = coddetalleorden;
    }

    public Detalleordenproduccion(String coddetalleorden, boolean controlcalidad) {
        this.coddetalleorden = coddetalleorden;
        this.controlcalidad = controlcalidad;
    }

    public String getCoddetalleorden() {
        return coddetalleorden;
    }

    public void setCoddetalleorden(String coddetalleorden) {
        this.coddetalleorden = coddetalleorden;
    }

    public Date getFechainicio() {
        return fechainicio;
    }

    public void setFechainicio(Date fechainicio) {
        this.fechainicio = fechainicio;
    }

    public Date getHorainicio() {
        return horainicio;
    }

    public void setHorainicio(Date horainicio) {
        this.horainicio = horainicio;
    }

    public Date getFechafin() {
        return fechafin;
    }

    public void setFechafin(Date fechafin) {
        this.fechafin = fechafin;
    }

    public Date getHorafin() {
        return horafin;
    }

    public void setHorafin(Date horafin) {
        this.horafin = horafin;
    }

    public String getObservacion() {
        return observacion;
    }

    public void setObservacion(String observacion) {
        this.observacion = observacion;
    }

    public boolean getControlcalidad() {
        return controlcalidad;
    }

    public void setControlcalidad(boolean controlcalidad) {
        this.controlcalidad = controlcalidad;
    }

    public Proceso getProcesoFk() {
        return procesoFk;
    }

    public void setProcesoFk(Proceso procesoFk) {
        this.procesoFk = procesoFk;
    }

    public Ordenproduccion getOrdenproduccionFk() {
        return ordenproduccionFk;
    }

    public void setOrdenproduccionFk(Ordenproduccion ordenproduccionFk) {
        this.ordenproduccionFk = ordenproduccionFk;
    }

    public List<Controlcalidad> getControlcalidadList() {
        return controlcalidadList;
    }

    public void setControlcalidadList(List<Controlcalidad> controlcalidadList) {
        this.controlcalidadList = controlcalidadList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (coddetalleorden != null ? coddetalleorden.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Detalleordenproduccion)) {
            return false;
        }
        Detalleordenproduccion other = (Detalleordenproduccion) object;
        if ((this.coddetalleorden == null && other.coddetalleorden != null) || (this.coddetalleorden != null && !this.coddetalleorden.equals(other.coddetalleorden))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "mrp.persistencia.entity.Detalleordenproduccion[ coddetalleorden=" + coddetalleorden + " ]";
    }
    
}
